package oracle;

import java.sql.*;

/**
 * 实现：利用java 链接 Oracle 数据库
 * 1.加载驱动 oracle.jdbc.OracleDriver Oracle
 *    com.mysql.jdbc.Driver Mysql5.5
 *    2.获取链接
 *    ①.获取Oracle基本信息：地址、用户名、密码
 *    ②.获取信息交给工具类DriverManager处理
 *    ③打桩测试 是否连接成功
 *    --------------------------JDBC链接成功Oracle
 *    --------------------------JDBC规范----CRUD”增删改“查
 *    ④执行SQL----创建表--oracle中创建 login表 序号 姓名  手机号
 *    Java提到对象 Statement对象  作用:执行SQL语句的类 提供执行SQL方法
 */
public class OracleJDBC {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //1.加载驱动 --Oracle版本
        Class.forName("oracle.jdbc.OracleDriver");
        //2.获取链接【准备功能:地址、用户名、密码】
        //①链接Oracle基本信息
        String username="system";//Oracle数据库 用户名
        String password="20040310";//密码:自己的,链接本地
        //thin 瘦客户端--固定前缀
        String url="jdbc:oracle:thin:@:127.0.0.1:1521:XE";
        //2.Oracle基本信息交给工具类
        Connection con=DriverManager.getConnection(url,username,password);
        System.out.println("成功"+con);
        //4.执行SQL---Statement对象--CRUD操作  查询  executeQuery
        //链接成功Oracle之后【Connection】,产生Statement对象
        Statement st=con.createStatement();
        //执行SQL查询操作---查询语句
        String sql="select * from login";
        //原Oracle代码1前加String 随即名字 外带""抱起来
        //Statement对象 查询和增删改---查询方法:executeQuery
        //ResultSet对象--保存所有查询的记录数据【字段和记录】
        ResultSet sb=st.executeQuery(sql);
        //5.处理结果【取所有的记录数  1.判断有没有字段】
        while(sb.next()){//next()判断是否有字符，有字段返回true，无字段返回false
            //get类型()取出字段中所有记录数
            int id= sb.getInt("id");
            String name=sb.getString("name");
            String phone=sb.getString("phone");
            System.out.println("表数据"+id+name+phone);
            //6.关闭资源
            sb.close();
            st.close();
            con.close();
            ////////2227222727
            //这里的错误不知道是密码还是啥，具体显示是XE那边出问题，但是解决不了，上面代码就是在错误下写的
            Connection co = DriverManager.getConnection(url, username, password);
            String sn="insert into book values(6,'蔡徐坤','114514')";
            Statement stt=co.createStatement();
            int rows=stt.executeUpdate(sn);
            System.out.println(rows);
        }
    }
}

























